Docker 安装 Gitlab
安装
进入服务器
user: 用户名, 默认为root
host: 主机, 例如192.168.0.158
ssh <user>@host
- 创建gitlab的config配置目录
- 创建gitlab的data数据目录
- 创建gitlab的logs日志目录
mkdir -p /data/gitlab/config
mkdir -p /data/gitlab/logs
mkdir -p /data/gitlab/data
- 安装Gitlab镜像, 根据需要安装
客户端搜索
DockerHub
查询GitLab版本或者使用指令docker search gitlab
查询, 本文使用gitlab最新版gitlab:latest
镜像
格式:
-d: 后台运行
-e: 使用的时间
--name: 容器名
--restart: always, 不管容器是否为异常退出, 一直尝试重启
host: 主机, 例如192.168.0.152
http_port: 使用HTTP的端口,默认为80
,
https_port: 使用HTTPS的端口,默认为443
,
ssh_port: 使用 SSH克隆项目的端口, 默认为22
-v: 挂载宿主机目录至容器目录
docker run \
-d \
-h <host> \
-p <http_port>:<http_port>
-p <https_port>:<https_port>
-p <ssh_port>:<ssh_port> \
-e TZ=Asia/Shanghai \
--shm-size 256m \
--name gitlab \
--restart always \
-v /data/gitlab/config:/etc/gitlab \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
示例:
mkdir -p /data/gitlab/config
mkdir -p /data/gitlab/logs
mkdir -p /data/gitlab/data
docker run -d \
-h 192.168.0.152 \
-p 80:80 \
-p 443:443 \
-p 2222:22 \
-e TZ=Asia/Shanghai \
--shm-size 256m \
--name gitlab \
--restart always \
-v /data/gitlab/config:/etc/gitlab \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest\
查看密码, 默认的账号是root
:
cat /data/gitlab/config/initial_root_password
配置
降低内存占用
https://zhuanlan.zhihu.com/p/566884380
cat >> $config/gitlab.rb <<EOF
# 禁用 puma cluster 模式, 可以减少 100-400 MB占用
puma['worker_processes'] = 0
# Sidekiq 是一个后台处理守护进程。默认情况下使用 GitLab 配置时,它以50. 这确实会影响它在给定时间可以分配多少内存。建议将其配置为使用明显更小的值5或10(首选)。
sidekiq['max_concurrency'] = 10
# GitLab 默认启用所有服务,无需任何额外配置即可提供完整的 DevOps 解决方案。一些默认服务,如监控,对于 GitLab 的运行不是必需的,可以禁用以节省内存。
# 禁用监控
prometheus_monitoring['enable'] = false
# GitLab 由许多组件(用 Ruby 和 Go 编写)组成,其中 GitLab Rails 是最大的组件,并且消耗最多的内存。
gitlab_rails['env'] = {
'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000'}
EOF
docker restart gitlab
基本配置
修改配置文件
vi /data/gitlab/config/gitlab.rb
格式: external_url: Gitlab首页地址,服务器URL gitlab_rails['gitlab_ssh_host']: 服务器URL gitlab_rails['gitlab_shell_ssh_port']: Gitlab SSH地址端口
示例:
external_url 'http://192.168.0.152'
gitlab_rails['gitlab_ssh_host'] = '192.168.0.152'
gitlab_rails['gitlab_shell_ssh_port'] = 2222 # Gitlab SSH地址
修改端口
可选, 如果想自定义端口, 就需要修改
修改gitlab配置
修改配置文件
vi /data/gitlab/config/gitlab.rb
PROT: 端口
external_url 'http://192.168.0.152:<PROT>'
nginx['listen_port'] = <PROT>
修改docker配置
如果Docker容器已经启动80端口,则更改Docker容器配置 参考 [[修改容器端口]]
把80端口改成你自己端口
修改nginx配置
此方法为临时方法,gitlab重新读取配置文件后失效
将gitlab.yml
文件的port
改成你想设置的端口
vi /data/gitlab/data/gitlab-rails/etc/gitlab.yml
配置邮箱服务
修改以下注释部分, 替换成你的邮箱
如果修改完不生效, 尝试替换字段
gitlab_rails['smtp_address']
的值为"smtp.exmail.qq.com"
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xiconz@qq.com" # 邮箱
gitlab_rails['smtp_password'] = "cbkdgrnopljpjdichc" # 授权码
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = true
gitlab_rails['gitlab_email_from'] = 'xiconz@qq.com' # 邮箱
user['git_user_email'] ="xiconz@qq.com" # 邮箱
测试邮件发送
格式:
Notify.test_email('exam@163.com','邮件标题','邮件内容').deliver_now
进入控制台发送测试邮件
gitlab-rails console
Notify.test_email('exam@163.com','邮件标题','邮件内容').deliver_now